\section{Rathaxes 2009}

\subsection{Problematic}

Writing a device driver requires an in-depth understanding of how the hardware
and the software of a given platform work. Drivers operate in a highly
privileged environment and can cause disaster if they get things
wrong\cite{linux-tutorial}.

Each platform provides its own software interface and drivers have to be
written for each of them.

Finally, it seems obvious that a software piece is missing to address these
problems :
\begin{itemize}
\item Separation between peripheral knowledge and platform knowledge;
\item Development time;
\item Code reuse-ability.
\end{itemize}

\subsection{Project overview}

The project is already divided in four parts :
\begin{enumerate}
\item The Rathaxes DSL\footnote{\emph{Domain Specific Language}} which
describes a peripheral driver;
\item The \BL\ which is a library of C source code templates used to
generate a driver;
\item A compiler which translates the Rathaxes DSL in C;
\item An extensive documentation of the language and the \BL\ for
users and contributors of Rathaxes.
\end{enumerate}

% TODO: add a link the GPLv3 and (Open)BSD license
The DSL and the compiler are licensed under the GPLv3\cite{GPLv3} while the
\BL\ is under the BSD\cite{BSD} license.

Currently, Rathaxes is a proof of concept able to only generate a RS-232 link
driver.
